package srzy.module

import srzy.common.Logging
import srzy.diameter._

object DCCMsgComp extends AbsCaseDeal with Logging {

  val r1 = "Event-Timestamp".r
  //  def dccMsgComp(a: scala.xml.Node, b: scala.xml.Node) = {
  def filterStr(n: String) = {
    n.split("\n").filter(x => r1.findFirstIn(x) match {
      case Some(v) => false
      case None => true
    })
  }
  //    filterStr(a.toFormatStr.split("\n").filter(p)
  //    b.toFormatStr
  //  }

  def deal = {
    val realReceDCCMsgs = getCaseInfo.realReceDCCMsg
    val stdReceDCCMsgs = getCaseInfo.stdReceDCCMsg

    if (realReceDCCMsgs.size != stdReceDCCMsgs.size) {
      logger.error("receRealDCCMsg size " + realReceDCCMsgs.size + " not equal to receStdDCCMsg size "
        + stdReceDCCMsgs.size + " !")
    } else {

      for (i <- 0 until realReceDCCMsgs.size) {
        val receRealDCCMsg = realReceDCCMsgs.apply(i)
        val receStdDCCMsg = stdReceDCCMsgs.apply(i)

        //        receRealDCCMsg.toFormatStr
        if (filterStr(receStdDCCMsg) == filterStr(receRealDCCMsg)) {
          getCaseInfo.dccCompResult = true
          //          logger.debug("receRealDCCMsg:" + receRealDCCMsg)
          //          logger.debug("receStdDCCMsg :" + receStdDCCMsg)
          //          logger.error("rece msg parse error :" + receMsg + ",CaseName:"
          //            + getCaseName)
          //          fail
          //        } else {
          //          val receStd = new RBMsgFullParser()
          //          if (receStd.parseMsg(receStdMsg) == false) {
          //            logger.error("recestd msg parse error :" + receStdMsg + ",CaseName:"
          //              + getCaseName)
          //            fail
          //          } else {
          //            logger.debug("receMsg   :" + receMsg)
          //            logger.debug("ReceStdMsg:" + receStdMsg)
          //            val bool = receStd.equals(rece)
          //            getCaseInfo.msgCompInfos.append("line:" + i + "\n" + receStd.getCompLog())
          //            if (!bool) fail
          //          }

        }

      }
    }

  }

  //  def fail = {
  //    getCaseInfo.dccCompResult = false
  //    getCaseInfo.caseResult = false
  //  }

  //  def success = {
  //    getCaseInfo.dccCompResult = true
  //    //    getCaseInfo.caseResult = true
  //  }
}